package com.jy.wms.dao;


import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.SysDictionary;
import com.jy.wms.pojo.WmsGoods;
import com.jy.wms.pojo.WmsLibrarypositiongroup;
import com.jy.wms.pojo.WmsOwner;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
   * @ClassName: WmsGoodsMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author JaneLiu
   * @Date Wed Sep 06 17:06:56 CST 2017
   */
   public interface WmsGoodsMapper extends BaseDao<WmsGoods> {

   /**
    * 插入一条记录
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsGoods") WmsGoods entity);

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
   public Integer baseInsertSelective(@Param("WmsGoods") WmsGoods entity);

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
   public Integer baseDeleteByPrimaryKey(@Param("id") String id);

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


    /**
    * 分页查询
    * @param entity 实体
    * @return List<WmsGoods>
    */
    public List<WmsGoods>  baseSelectPage(@Param("WmsGoods") WmsGoods entity);

    /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return User
    */
    public WmsGoods  baseSelectByPrimaryKey(@Param("id") String id);
    /**
     * 查询（根据主键ID查询货品编辑内容）
     * @param id 主键ID
     * @return User
     */
    public WmsGoods  baseSelectByGoodsEdit(@Param("id") String id);

    /**
     * 查询（根据货主ID查询货主对应的货品）
     * @param sshzid 货主ID
     * @param mc 货品名称
     * @return User
     */
    public List<WmsGoods>  baseSelectGoodsBySshzid(@Param("sshzid") String sshzid, @Param("mc") String mc,@Param("hpid") String hpid);
   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsGoods> idList);

   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsGoods") WmsGoods entity);

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsGoods") WmsGoods entity);



    /**
     *货品编号查重 （匹配有值的字段）
     * @param bh 货品编号
     * @return
     */
    public Integer baseSelectGoodsBh(@Param("bh") String bh,@Param("id") String id);
    /**
     *货品编号最大值 （匹配有值的字段）
     * @return
     */
    public String baseSelectGoodsBhMax();
    /**
     *查询（根据货品ID查询保质期）
     * @param id 货品id
     * @return
     */
    public String seachGoodsBzqById(@Param("id") String id);
    /**
     *查询未被货品占用的库位组
     * @param ckid 仓库ID
     * @param sshzid 所属货主ID
     * @return
     */
    public List<WmsLibrarypositiongroup> seachLibrarypositiongroup(@Param("sshzid") String sshzid,@Param("ckid") String ckid,@Param("mc") String mc);
    /**
     *查询库位组信息 根据库位组Id
     * @param id 库位组ID
     * @return
     */
    public WmsLibrarypositiongroup selectByGroupId(@Param("id") String id);
    /**
     *查询货主信息 _Jane
     * @param id 货主Id
     * @return
     */
    public WmsOwner seachOwnerXx(@Param("id") String id, @Param("ckid") String ckid);
    /**
     *查询库位类型信息 _Jane
     * @param lx 包装类型
     * @return
     */
    public List<SysDictionary> seachKwlx(@Param("lx") String lx);
}
